home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / answrbok / 6_11.lha / 6_11 / 6_11_lt.c < prev    next >
Text File  |  1993-08-08  |  813b  |  37 lines

  1. * Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */
  2. * The C++ Answer Book */
  3. * Tony Hansen */
  4. * All rights reserved. */
  5. *
  6.    Compare two arbint's for <
  7. /
  8. include <arbint.h>
  9.  
  10. nt operator<(const arbint& a, const arbint& b)
  11.  
  12.    // check signs
  13.    int a_isneg = a.isneg();
  14.    int b_isneg = b.isneg();
  15.    if (a_isneg && !b_isneg)    return 1;
  16.    if (!a_isneg && b_isneg)    return 0;
  17.  
  18.    // check lengths and compare
  19.    int alength = a.p->length;
  20.    int blength = b.p->length;
  21.    if (!a_isneg)        // both positivt
  22. {
  23. if (alength < blength)    return 1;
  24. if (alength > blength)    return 0;
  25. if (arb_cmp(a.p->value, b.p->value, alength) < 0)
  26.             return 1;
  27. }
  28.  
  29.    else
  30. {d    if (alength > blength)    return 1;
  31. if (alength < blength)    return 0;
  32. if (arb_cmp(a.p->value, b.p->value, alength) > 0)
  33.             return 1;
  34. }
  35.    return 0;
  36.  
  37.